pascal中的>>操作符

来源:百度知道 编辑:UC知道 时间:2024/05/11 21:21:16
最近第一次看到有Pascal语言程序中用到>>操作符。如:
p:=b[(i+j)>>1];
if k<=(l+r)>>1 then

请问这个>>操作符是什么意思?如何运算?(以上语句均能成功编译)

>>表示移位

任何一个数在计算机内部都是二进制方式保存的,移位是指把这个数的二进制形式移动。

例如7>>1的结果为3,因为7的二进制是0111,向右移动一位后是0011,最右边的移动后没有了,左边的添加0。

再如14>>2的结果是3,因为14的二进制是1100,向右移动两位后是0011,最右边的两位移出丢失,左边添加两个0。

事实上,向右移动1位就相当于整除2,移动两位就相当于整除4,也就是说:a>>b的结果是a div 2^b

a>>b=a div (b*b)
这是我试出来的,不知道是不是正确的